{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一步：寻找最佳参数n_estimators"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 导入工具包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "import seaborn as sns\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.导入数据 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "dpath = \"./data/\"\n",
    "data = pd.read_csv(dpath + \"RentListingInquries_FE_train.csv\")\n",
    "# data_test = pd.read_csv(dpath + \"RentListingInquries_FE_test.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data train:  (16779, 228)\n"
     ]
    }
   ],
   "source": [
    "# 取三分之一的数据作为训练集\n",
    "data_train, data_val = train_test_split(data, test_size = 0.66,random_state = 0)\n",
    "print(\"data train: \",data_train.shape)\n",
    "# print(\"data test: \",data_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "      <th>price_bathrooms</th>\n",
       "      <th>price_bedrooms</th>\n",
       "      <th>room_diff</th>\n",
       "      <th>room_num</th>\n",
       "      <th>Year</th>\n",
       "      <th>Month</th>\n",
       "      <th>Day</th>\n",
       "      <th>...</th>\n",
       "      <th>walk</th>\n",
       "      <th>walls</th>\n",
       "      <th>war</th>\n",
       "      <th>washer</th>\n",
       "      <th>water</th>\n",
       "      <th>wheelchair</th>\n",
       "      <th>wifi</th>\n",
       "      <th>windows</th>\n",
       "      <th>work</th>\n",
       "      <th>interest_level</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>1.677900e+04</td>\n",
       "      <td>1.677900e+04</td>\n",
       "      <td>1.677900e+04</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.0</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "      <td>16779.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.209071</td>\n",
       "      <td>1.537994</td>\n",
       "      <td>4.002467e+03</td>\n",
       "      <td>1.784611e+03</td>\n",
       "      <td>1.718569e+03</td>\n",
       "      <td>-0.328923</td>\n",
       "      <td>2.747065</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>5.009476</td>\n",
       "      <td>15.247631</td>\n",
       "      <td>...</td>\n",
       "      <td>0.002920</td>\n",
       "      <td>0.000298</td>\n",
       "      <td>0.184397</td>\n",
       "      <td>0.008940</td>\n",
       "      <td>0.000536</td>\n",
       "      <td>0.027773</td>\n",
       "      <td>0.001788</td>\n",
       "      <td>0.000894</td>\n",
       "      <td>0.000954</td>\n",
       "      <td>1.616485</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.495244</td>\n",
       "      <td>1.115954</td>\n",
       "      <td>3.569312e+04</td>\n",
       "      <td>1.781989e+04</td>\n",
       "      <td>1.228794e+04</td>\n",
       "      <td>0.949059</td>\n",
       "      <td>1.442402</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.824854</td>\n",
       "      <td>8.341423</td>\n",
       "      <td>...</td>\n",
       "      <td>0.053963</td>\n",
       "      <td>0.017260</td>\n",
       "      <td>0.387819</td>\n",
       "      <td>0.099066</td>\n",
       "      <td>0.023154</td>\n",
       "      <td>0.164326</td>\n",
       "      <td>0.042248</td>\n",
       "      <td>0.029887</td>\n",
       "      <td>0.030866</td>\n",
       "      <td>0.625818</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.500000e+01</td>\n",
       "      <td>2.250000e+01</td>\n",
       "      <td>4.500000e+01</td>\n",
       "      <td>-4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.498000e+03</td>\n",
       "      <td>1.225000e+03</td>\n",
       "      <td>1.066667e+03</td>\n",
       "      <td>-1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.150000e+03</td>\n",
       "      <td>1.500000e+03</td>\n",
       "      <td>1.397500e+03</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>15.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>4.100000e+03</td>\n",
       "      <td>1.850000e+03</td>\n",
       "      <td>1.962500e+03</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>22.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>4.490000e+06</td>\n",
       "      <td>2.245000e+06</td>\n",
       "      <td>1.496667e+06</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>31.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8 rows × 228 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          bathrooms      bedrooms         price  price_bathrooms  \\\n",
       "count  16779.000000  16779.000000  1.677900e+04     1.677900e+04   \n",
       "mean       1.209071      1.537994  4.002467e+03     1.784611e+03   \n",
       "std        0.495244      1.115954  3.569312e+04     1.781989e+04   \n",
       "min        0.000000      0.000000  4.500000e+01     2.250000e+01   \n",
       "25%        1.000000      1.000000  2.498000e+03     1.225000e+03   \n",
       "50%        1.000000      1.000000  3.150000e+03     1.500000e+03   \n",
       "75%        1.000000      2.000000  4.100000e+03     1.850000e+03   \n",
       "max        6.000000      8.000000  4.490000e+06     2.245000e+06   \n",
       "\n",
       "       price_bedrooms     room_diff      room_num     Year         Month  \\\n",
       "count    1.677900e+04  16779.000000  16779.000000  16779.0  16779.000000   \n",
       "mean     1.718569e+03     -0.328923      2.747065   2016.0      5.009476   \n",
       "std      1.228794e+04      0.949059      1.442402      0.0      0.824854   \n",
       "min      4.500000e+01     -4.000000      0.000000   2016.0      4.000000   \n",
       "25%      1.066667e+03     -1.000000      2.000000   2016.0      4.000000   \n",
       "50%      1.397500e+03      0.000000      2.000000   2016.0      5.000000   \n",
       "75%      1.962500e+03      0.000000      4.000000   2016.0      6.000000   \n",
       "max      1.496667e+06      2.000000     12.000000   2016.0      6.000000   \n",
       "\n",
       "                Day       ...                walk         walls           war  \\\n",
       "count  16779.000000       ...        16779.000000  16779.000000  16779.000000   \n",
       "mean      15.247631       ...            0.002920      0.000298      0.184397   \n",
       "std        8.341423       ...            0.053963      0.017260      0.387819   \n",
       "min        1.000000       ...            0.000000      0.000000      0.000000   \n",
       "25%        8.000000       ...            0.000000      0.000000      0.000000   \n",
       "50%       15.000000       ...            0.000000      0.000000      0.000000   \n",
       "75%       22.000000       ...            0.000000      0.000000      0.000000   \n",
       "max       31.000000       ...            1.000000      1.000000      1.000000   \n",
       "\n",
       "             washer         water    wheelchair          wifi       windows  \\\n",
       "count  16779.000000  16779.000000  16779.000000  16779.000000  16779.000000   \n",
       "mean       0.008940      0.000536      0.027773      0.001788      0.000894   \n",
       "std        0.099066      0.023154      0.164326      0.042248      0.029887   \n",
       "min        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "25%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "50%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "75%        0.000000      0.000000      0.000000      0.000000      0.000000   \n",
       "max        2.000000      1.000000      1.000000      1.000000      1.000000   \n",
       "\n",
       "               work  interest_level  \n",
       "count  16779.000000    16779.000000  \n",
       "mean       0.000954        1.616485  \n",
       "std        0.030866        0.625818  \n",
       "min        0.000000        0.000000  \n",
       "25%        0.000000        1.000000  \n",
       "50%        0.000000        2.000000  \n",
       "75%        0.000000        2.000000  \n",
       "max        1.000000        2.000000  \n",
       "\n",
       "[8 rows x 228 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_train.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Interest level')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x4cce7bfc88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(data_train.interest_level)\n",
    "plt.xlabel(\"Number of occurrences\")\n",
    "plt.ylabel(\"Interest level\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "样本分布不均，大部分是不感兴趣"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 调用xgboost中的cv寻找最佳参数n_estimators"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "kfold = StratifiedKFold(n_splits = 5, shuffle = True, random_state = 6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 分离 X 和 y\n",
    "y_train = data_train[\"interest_level\"]\n",
    "X_train = data_train.drop(\"interest_level\", axis = 1)\n",
    "\n",
    "# X_test = data_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def modelfit(alg, X_train, y_train, cv_folds = None, early_stopping_rounds = 10):\n",
    "    xgb_param = alg.get_xgb_params()\n",
    "    xgb_param[\"num_class\"] = 3\n",
    "    \n",
    "    # 把数据转为DMatrix\n",
    "    xg_train = xgb.DMatrix(X_train, label = y_train)\n",
    "    \n",
    "    # 交叉验证，获取结果\n",
    "    cv_result = xgb.cv(xgb_param, xg_train, num_boost_round = alg.get_params()['n_estimators'], folds = cv_folds,\n",
    "                      metrics = \"mlogloss\", early_stopping_rounds = early_stopping_rounds)\n",
    "    \n",
    "    # 将结果保存为csv文件\n",
    "    cv_result.to_csv(\"1_nestimators.csv\", index_label = \"n_estimators\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 构建分类器\n",
    "xgb1 = XGBClassifier(\n",
    "        learning_rate = 0.1,\n",
    "        n_estimators = 1000,\n",
    "        max_depth = 5,\n",
    "        min_child_weight = 1,\n",
    "        gamma = 0,\n",
    "        subsample = 0.3,\n",
    "        colsample_bytree = 0.8,\n",
    "        colsample_bylevel = 0.7,\n",
    "        objective = \"multi:softprob\",\n",
    "        nthread = -1, # 多线程\n",
    "        seed = 6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 调用modelfit\n",
    "modelfit(xgb1, X_train, y_train, cv_folds = kfold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "cv_result = pd.read_csv(\"1_nestimators.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1dd1a4b9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_means = cv_result[\"test-mlogloss-mean\"]\n",
    "test_stds = cv_result[\"test-mlogloss-std\"]\n",
    "\n",
    "train_means = cv_result[\"train-mlogloss-mean\"]\n",
    "train_stds = cv_result[\"train-mlogloss-std\"]\n",
    "\n",
    "x_axis = range(0, cv_result.shape[0])\n",
    "\n",
    "plt.errorbar(x_axis, test_means, yerr = test_stds, label = \"Test\")\n",
    "plt.errorbar(x_axis, train_means, yerr = train_stds, label = \"Train\")\n",
    "plt.title(\"XGBoost n_estimators vs Log loss\")\n",
    "plt.xlabel(\"n_estimators\")\n",
    "plt.ylabel(\"Log loss\")\n",
    "plt.savefig(\"n_estimators1_1.png\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1dd3af71d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cv_result1 = cv_result.iloc[20:]\n",
    "# plot\n",
    "test_means = cv_result1[\"test-mlogloss-mean\"]\n",
    "test_stds = cv_result1[\"test-mlogloss-std\"]\n",
    "\n",
    "\n",
    "train_means = cv_result1[\"train-mlogloss-mean\"]\n",
    "train_stds = cv_result1[\"train-mlogloss-std\"]\n",
    "\n",
    "x_axis = range(20, cv_result1.shape[0] + 20)\n",
    "        \n",
    "fig = plt.figure(figsize = (10, 10), dpi = 100)\n",
    "plt.errorbar(x_axis, test_means, yerr = test_stds, label = \"Test\")\n",
    "plt.errorbar(x_axis, train_means, yerr = train_stds, label = \"Train\")\n",
    "plt.title(\"XGBoost n_estimators vs Log loss\")\n",
    "plt.xlabel(\"n_estimators\")\n",
    "plt.ylabel(\"Log loss\")\n",
    "plt.savefig(\"n_estimators1_2.png\")\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "best n_estimators:  116\n"
     ]
    }
   ],
   "source": [
    "print(\"best n_estimators: \", cv_result.shape[0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "cv获取的最佳参数为116"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
